package com.hzlj.position.locate.common.dto.abnMissingJzry;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fz.common.base.dto.QueryResultCommonDTO;
import com.fz.common.base.enums.db.ResultField;
import com.fz.common.dict.annotation.Dict;
import com.hzlj.position.config.common.dto.common.PositionHandleExtDTO;
import com.hzlj.position.locate.common.dto.abnMissingJzryNotice.AbnMissingJzryNoticeQueryResultDTO;
import com.hzlj.position.locate.common.enums.AbnMissingStep;
import com.hzlj.sqjz.jz.common.model.JzJbxx;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

import static com.fz.common.base.core.date.DateUtils.*;

/**
 * 定位分析-疑似失联人员(AbnMissingJzry)查询结果返回DTO
 *
 * @author makejava
 * @date 2024-06-26 18:36:48
 */
@Data
@ToString
@Accessors(chain = true)
public class AbnMissingJzryQueryResultDTO extends QueryResultCommonDTO<String> {
    /**
     * 主键编号
     */
    private String id;
    /**
     * 矫正ID(jz_jbxx)
     */
    private String jzId;
    /**
     * 所属天
     */
    @JsonFormat(locale = LOCALE, timezone = TIME_ZONE, pattern = DATE_SHORT_FORMAT)
    private Date belongDay;
    /**
     * 开始时间
     */
    private Date startTime;
    /**
     * 结束时间
     */
    private Date endTime;
    /**
     * 上次定位记录时间
     */
    private Date lastPositionTime;
    /**
     * 上次定位记录编号
     */
    private String lastPositionId;
    /**
     * 上次位置描述
     */
    private String lastPosition;
    /**
     * 检测结果,dict-ABN_MISSING_CHECK
     */
    @Dict("ABN_MISSING_CHECK")
    private String missingCheck;
    /**
     * 检测结果,dict-ABN_MISSING_CHECK(文本)
     */
    private String missingCheckText;
    /**
     * 检测结果状态,dict-ABN_MISSING_CHECK_STATUS
     */
    @Dict("ABN_MISSING_CHECK_STATUS")
    private String missingCheckStatus;
    /**
     * 检测结果状态,dict-ABN_MISSING_CHECK_STATUS(文本)
     */
    private String missingCheckStatusText;
    /**
     * 上报的时间
     */
    private Date reportTime;
    /**
     * 处理状态,dict-HANDLE_STATUS
     */
    @Dict("HANDLE_STATUS")
    private String handleStatus;
    /**
     * 处理状态,dict-HANDLE_STATUS(文本)
     */
    private String handleStatusText;
    /**
     * 异常处理时间,当前更新时间
     */
    private Date handleTime;
    /**
     * 异常处理数据,json-PositionHandleExtDTO
     */
    private PositionHandleExtDTO handleExt;

    @ResultField(value = JzJbxx.class)
    private String xm;

    @ResultField(value = JzJbxx.class)
    private String jgMc;

    @ResultField(value = JzJbxx.class)
    private String sjh;

    @ResultField(value = JzJbxx.class)
    private String jgCode;
    /**
     * 失联通知详情
     */
    private List<AbnMissingJzryNoticeQueryResultDTO> notices;

    public AbnMissingJzryNoticeQueryResultDTO notice(AbnMissingStep step) {
        if (notices == null) {
            return null;
        }
        return notices.stream().filter(e -> e.getNoticeStep().equals(step.getStep())).findFirst().orElse(null);
    }
}
